import Vue from "vue";

import "normalize.css/normalize.css"; // A modern alternative to CSS resets

import {
  Table,
  TableColumn,
  Input,
  InputNumber,
  Select,
  Tree,
  Popover,
  Menu,
  MenuItem,
  Submenu,
  Switch,
  Breadcrumb,
  BreadcrumbItem,
  Button,
  Dropdown,
  DropdownMenu,
  DropdownItem,
  Dialog,
  Card,
  Icon,
  Form,
  FormItem,
  Option,
  OptionGroup,
  Pagination,
  Loading,
  Row,
  Col,
  DatePicker,
  Transfer,
  TabPane,
  RadioButton,
  CheckboxGroup,
  Checkbox,
  RadioGroup,
  Step,
  Cascader,
  Steps,
  Upload,
  TimePicker,
  Radio,
  Tabs,
  MessageBox,
  Progress,
  Tooltip,
  Tag
} from "element-ui";
import 'element-ui/lib/theme-chalk/index.css';
import locale from "element-ui/lib/locale/lang/zh-CN"; // lang i18n
import VCharts from "v-charts";

import "@/styles/index.scss"; // global css

import App from "./App";
import router from "./router";
import store from "./store";

import "@/icons"; // icon
import "@/permission"; // permission control

Vue.use(Icon, {locale});
Vue.use(OptionGroup, {locale});
Vue.use(Progress, { locale });
Vue.use(Table, { locale });
Vue.use(InputNumber, { locale });
Vue.use(TableColumn, { locale });
Vue.use(Input, { locale });
Vue.use(Select, { locale });
Vue.use(Menu, { locale });
Vue.use(MenuItem, { locale });
Vue.use(Submenu, { locale });
Vue.use(Tree, { locale });
Vue.use(TimePicker, { locale });
Vue.use(Popover, { locale });
Vue.use(Switch, { locale });
Vue.use(Button, { locale });
Vue.use(Breadcrumb, { locale });
Vue.use(BreadcrumbItem, { locale });
Vue.use(Dropdown, { locale });
Vue.use(DropdownMenu, { locale });
Vue.use(DropdownItem, { locale });
Vue.use(Dialog, { locale });
Vue.use(Form, { locale });
Vue.use(Radio, { locale });
Vue.use(FormItem, { locale });
Vue.use(Card, { locale });
Vue.use(Option, { locale });
Vue.use(Pagination, { locale });
Vue.use(Loading, { locale });

Vue.use(Row, { locale });
Vue.use(DatePicker, { locale });
Vue.use(Col, { locale });

Vue.use(Transfer, { locale });
Vue.use(TabPane, { locale });
Vue.use(RadioButton, { locale });
Vue.use(CheckboxGroup, { locale });
Vue.use(Checkbox, { locale });

Vue.use(RadioGroup, { locale });
Vue.use(Step, { locale });
Vue.use(Cascader, { locale });
Vue.use(Steps, { locale });

Vue.use(Upload, { locale });
Vue.use(Tabs, { locale });
Vue.use(Tooltip, { locale });
Vue.use(Tag, {locale});
Vue.use(VCharts);

Vue.config.productionTip = false;
Vue.prototype.$confirm = MessageBox.confirm;
Vue.prototype.$message = MessageBox;
import {Base64} from 'js-base64'
Vue.prototype.$base64 = Base64;

Vue.use(Base64);

new Vue({
  el: "#app",
  router,
  store,
  template: "<App/>",
  components: { App },
});
